
class Table: public Formattable {
 public:
  Table (const string& table_name);
  ~Table();

  bool open     (TableState& state);
  bool position (TableState& state, int rowId);

  bool getRow (TableState& state, vector<string>& rowColumns);
  bool putRow (TableState& state, vector<string>& rowColumns, bool block = true);

 private:
  bool getSortedIndexList (vector<string>& columnNames, vector< BiContainer<int> >& indexList);
  void commitFormatModification (); /* Synchornizes table data with new format  */
  void addPage ();
};

